/**
 * 泛型也被广泛的运用与接口中
 */

{
	/**
	 * 这个例子的使用就非常的棒，仔细的看一下就能发现 接口 配合 type类型 配合 泛型 我们就可以创建这个非常优雅的数据结构
	 *  而这个的好处就在于我们一旦这样定义了之后  vscode或者其他的支持ts的编译工具我们就可以得到非常优雅的代码提示
	 *    TS还是非常的适合这样开发的
	 *
	 *  泛型的使用场景差不多就结束了 就5个小节  虽然不多 但是值得反复学习不容易忘记
	 *    其他的像类我不容易忘记是因为之前学习C#学了 到泛型就没有学了 所以泛型相当于是0基础 需要花费更多的时间
	 *
	 *  偶尔看一遍代码 加深印象 配合上vue3源码这个大杀器 可以很快很好的掌握TS
	 */
	interface ArticleInterface<B, C> {
		title: string
		isLock: B
		comments: C[]
	}

	type commentType = {
		username: string
		create_time: number
		content: string
	}

	const javascript: ArticleInterface<boolean, commentType> = {
		title: 'JavaScript高级语言程序设计',
		isLock: false,
		comments: [
			{ username: 'Jimmy', create_time: 1672635172, content: '红宝书yyds' },
			{
				username: 'Xuexue',
				create_time: 1672635173,
				content: '不错不错，是个好书',
			},
		],
	}
}
